Field of Invention
Embodiments of the invention relate generally to memory devices, and more specifically, to searching data in parallel using processor-in-memory (PIM) devices.
Description of Related Art
Integrated circuit designers often desire to increase the level of integration or density of elements within an integrated circuit by reducing the size of the individual elements and by reducing the separation distance between neighboring elements. In addition, integrated circuit designers often desire to design architectures that may be not only compact, but offer performance advantages, as well as simplified designs. One example of a common integrated circuit element may be a transistor, which may be found in many devices, such as memory circuits, processors, and the like. A typical integrated circuit transistor may include a source, a drain, and a gate formed at the surface of the substrate.
A relatively common integrated circuit device may be a memory device. There may be many different types of memory devices including, for example, volatile and non-volatile memory. Volatile memory devices may include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), and thyristor random access memory (TRAM), and similar volatile memory devices. On the other hand, non-volatile memory devices include NAND flash memory, NOR flash memory, as well as resistance and magnetic based memory devices such as phase change random access memory (PCRAM), resistive random access memory (RRAM), magnetoresistive random access memory (MRAM), spin torque transfer random access memory (STT RAM), and other similar nonvolatile memory devices.
Electronic systems often include a number of processing resources (e.g., one or more processors), which may retrieve and execute instructions and store the results of the executed instructions to a suitable location. A processor may include number of functional units and similar circuitry to execute instructions by performing a number of operations. In many instances, these processing resources (e.g., functional units) may be external to the memory devices, in which data may be accessed via a bus between the processing resources and the memory devices to execute a set of instructions. This may lead to unnecessarily longer delays and increased power consumption in the processing and executing of the instructions. Furthermore, when performing text searches and/or data inquiries of data stored in the memory, these delays and increases in power consumption may be exacerbated, particularly when attempting to perform text searches of multiple documents and/or pages of data at once. It may be useful to provide devices and methods to increase processing efficiency and decrease power consumption when performing such text or data searches.